Skip to main content

Article External ID

Frequency:

Article ID changes are required to be sent in near real-time. Any change to an interface field in the external system should trigger the interface.

Expected data:

This interface is used when the article ID needs to be changed in the external system. The goal is to retain the article's sales history and other associated data: the article keeps its data in DSMDS under the new identifier.

  • Old and new article IDs

Technical:

The article must already exist in DSMDS.

The new identifier must not be used by another article of the same client.

The previous identifier is kept as the article's old external ID. Only the most recent previous identifier is kept; an earlier old ID is overwritten by the next change.

After the change, the old identifier is no longer recognised. Data sent to other interfaces (e.g., Articles) with the old identifier creates or references a different article.

Sending the same value in article_id and new_article_id returns the "not unique" warning.

Records are processed independently, not in a single transaction. A record that produces a warning is skipped, and the other records are still processed. If a required field is missing, the request fails with 409, but records processed before it may already be changed.


POST https://{url}/articles/external-id/v1

Change the identifier of existing articles.

Request Body

The request body is a JSON array of objects with the following fields.

NameTypeRequiredDescription
article_idstringYesCurrent article identifier in the external system
new_article_idstringYesNew article identifier in the external system

Request Example

[
{
"article_id": "0001",
"new_article_id": "1001"
},
{
"article_id": "0047",
"new_article_id": "1047"
}
]

Response

200: OK — Success

{
"success": true,
"message": "",
"data": null,
"warnings": []
}

200: OK — Success with warnings

{
"success": true,
"message": null,
"data": null,
"warnings": [
"Article with ID '0001' does not exist",
"Cannot change article ID '0047' to '1047' because this ID is not unique"
]
}

200: OK — Error

{
"success": false,
"message": "Failed to map JSON",
"data": null,
"warnings": []
}